/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class Coder
{
    //JLabel jlab;
    //JTextField jtxt;

    Coder()
    {
       //создание контейнера верхнего уровня (JFrame)
       //при помощи конструктора
       JFrame jfrm= new JFrame("ШИФРАТОР");

       //Установка диспетчера компоновки FlowLayour
       jfrm.setLayout(new FlowLayout());

       //Установка начальник размеров фрейма
       jfrm.setSize(300,200);

       //Завершение программы при закрытии пользователем окна приложения
       jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       //создание компонента TextField - 1
       final JTextField jtfPlainText = new JTextField(20);

       //создание компонента TextField - 2
       final JTextField jtfCipherText = new JTextField(19);

       //создание компонента верхнего уровня (JLabel)
       final JLabel jlab1=new JLabel("КОД");

              //создание компонента верхнего уровня (JLabel)
       final JLabel jlab2=new JLabel("ШИФР");
       //Создание кнопок
       JButton jbntEncore=new JButton("Вперед");
       JButton jbntDecore=new JButton("Назад");
       JButton jbntReset=new JButton("Очистить");


       //Связывание кнопки jbntFirst с обработчиком событий
       jbntEncore.addActionListener(new ActionListener()
       {
         public void actionPerformed(java.awt.event.ActionEvent e)
         {
             //получение текста и передача его объекту
             StringBuilder str=new StringBuilder(jtfPlainText.getText());
             //добавление единицы к коду каждого символа
             for(int i=0;i<str.length();i++)

             str.setCharAt(i, (char)(str.charAt(i)+1));
             //помещение защифрованного кода в jtfCipherText
             jtfCipherText.setText(str.toString());
          //System.out.println("1 buton pressed");
         }
       });

      //Связывание кнопки jbntSecond с обработчиком событий
       jbntDecore.addActionListener(new ActionListener()
       {
         public void actionPerformed(java.awt.event.ActionEvent e)
         {
             /*получение текста и передача его объекту str.
               Классы StringBuilder и StringBuffer являются “близнецами”
               и по своему предназначению близки к классу String,
               но, в отличие от последнего, содержимое и размеры объектов
               классов StringBuilder и StringBuffer можно изменять.*/
             StringBuilder str=new StringBuilder(jtfPlainText.getText());
             //добавление единицы к коду каждого символа
             for(int i=0;i<str.length();i++)
             /*Одиночный символ может быть извлечен из объекта StringBuffer
              с помощью метода charAt. Другой метод setCharAt позволяет записать
              в заданную позицию строки нужный символ.
              Одиночный символ может быть извлечен из объекта StringBuffer
              с помощью метода charAt. Другой метод setCharAt позволяет записать
              в заданную позицию строки нужный символ.*/
             str.setCharAt(i, (char)(str.charAt(i)-1));
             //помещение защифрованного кода в jtfCipherText
             jtfCipherText.setText(str.toString());
          //System.out.println("1 buton pressed");
         }
       });
             //Связывание кнопки jbntSecond с обработчиком событий
       jbntReset.addActionListener(new ActionListener()
       {
         public void actionPerformed(java.awt.event.ActionEvent e)
         {
          jtfPlainText.setText("");
          jtfCipherText.setText("");
          //System.out.println("2 buton pressed");
         }
       });


       //Добавление кнопок в JFrame
       jfrm.add(jbntEncore);
       jfrm.add(jbntDecore);
       jfrm.add(jbntReset);
       //Включение компонента Label в состав контейнера
       jfrm.add(jlab1);
       //Включение компонента Field_text-1 в состав контейнера
       jfrm.add(jtfPlainText);
       //Включение компонента Label в состав контейнера
       jfrm.add(jlab2);
       //Включение компонента Field_text-2 в состав контейнера
       jfrm.add(jtfCipherText);



       //Отображение фрейма
       jfrm.setVisible(true);
    }

    /*Обработка событий ActionEvent связанных с кнопками
    public void actionPerformed(ActionEvent ae)
    {

        //Использование команды действия для идентификации кнопки
        if(ae.getActionCommand().equals("1"))
        jlab.setText("asd");

        if(ae.getActionCommand().equals("2"))
        jlab.setText("dsa");
    }*/




       public static void main(String[] args)
   {
       //Создание фрейма в потоке обработки событий
       SwingUtilities.invokeLater
               (
               new Runnable()
                  {
                  public void run()
                    {
                     new Coder();
                    }
                  }
               );
   }

}
